/****************************************************************************************************/
/**
\file       SchM.h
\brief      Scheduler module main functionality of the scheduler
\date       08/03/2014
*/
/****************************************************************************************************/

#ifndef SCH_H        /*prevent duplicated includes*/ 
#define SCH_H  

/****************************************************************************************************
* Include files
*****************************************************************************************************/
#include "Std_Types.h"
#include "OS_TaskCfg.h"


 /** Dynamic Memory allocation services */
#include "memory_allocation.h"

/****************************************************************************************************
* Definition of module wide MACROS / #DEFINE-CONSTANTS 
*****************************************************************************************************/
#define CNF_TASK_QUEUE_DEEP_PER_PRIORITY          8
#define CNF_MAX_PRIORITY                          8
/****************************************************************************************************
* Module wide variables 
*****************************************************************************************************/
extern OS_TaskControlBlockInformationType *schm_task_status;
extern TaskType currentRunning;

/****************************************************************************************************
* Function Prototypes
*****************************************************************************************************/

void SchM_Init(const OS_TaskConfigType * schM_Config);
void SchM_DeInit(void);
void SchM_Start(void);
void SchM_OsTick(void);
void SchM_Background(void);
void SchM_Dispatcher(void);

#endif /* SCH_H */ 